<?php

class ForumsController extends AppController {
	var $name = 'Forums';
	var $components = array ('Pagination','Upload');
	var $helpers = array('Html','Form','Accessibility','Pagination','Box');

	function index() {

		$title = 'Fórum';
		$this->set('title', $title);
		$this->set('pageTitle', $title);

		$conditions = array();

		// Permissao: se pode visualizar todas as unidades
		$group = $this->othAuth->getData('group');
		$level =$group['level'];
		$unitUser = $this->othAuth->getData('unit');

		if ($level >= 100) {  // not system admin
			$conditions[] = array('or' => array(
				"organization_id"=>$unitUser['0']['Organization']['id'],
				"public"=>'1'));
		}

		$forums = $this->Forum->find('all',array("conditions"=>$conditions,'order'=>'Forum.created DESC'));
		$this->set('forums', $forums);

	}

	function view( $id=null ) {
		if (!$id) $this->redirect('/forums');
		$title = 'Discussão';
		$this->set('title', $title);
		$this->set('pageTitle', $title);

		$this->Forum->id = $id;
		$this->set('forum', $this->Forum->read());

		$conditions = "forum_id = ".$id;
		$postObj = new Post();
		$posts = $postObj->find('all',array('conditions'=>$conditions));
		$this->set('posts',$posts);

		foreach($posts as $post)
		{
			$destination = '/app/webroot/files/';
			$extensao = $this->Upload->ext($post['User']['photo']);
			$file = $destination."post_".$post['Post']['id'].".".$extensao;
			$this->set('file_'.$post['Post']['id'], $file);
		}
	}

	function add() {
		$title = 'Nova discussão';

		$this->set('title', $title);
		$this->set('pageTitle', $title);


		if (!empty($this->data)) {

			// Recuperando unidade do usuário logado
			$unitUser = $this->othAuth->getData('unit');

			// Recuperando entidade do usuário logado
			$org = $unitUser['0']['Organization']['id'];

			// Recuperando ID do usuário logado
			$user = $this->othAuth->getData("user");
			$user_id = $user['id'];

			// Indicando entidade do fórum
			$this->data["Forum"]["organization_id"] = $org;

			// Indicando autor do fórum
			$this->data["Forum"]['createdby'] = $user_id;
			$this->data["Forum"]['modifiedby'] = $user_id;

			// Validando as informacoes do fórum

			if($this->data["Post"]["text"]  == null) {
				$_SESSION['mensagem']['error'][] = 'O campo Mensagem Inicial é obrigatório.';
			}

			if (isset($_SESSION['mensagem']['error'])) {
				return;
			}

			//Salvando as informacoes do formulario o BD
			if ($this->Forum->save($this->data)) {

				$forum_id = $this->Forum->getLastInsertId();

				$this->data["Post"]['user_id'] = $user_id;
				$this->data["Post"]['forum_id'] = $forum_id;

				if ($this->Forum->Post->save($this->data)) {
					$_SESSION['mensagem']['success'][] = 'Discussão cadastrada com sucesso!';
					$this->redirect('/forums/view/'.$forum_id);
				}
			} else {
				$_SESSION['mensagem']['error'][] = 'Erro ao tentar cadastrar a Discussão';
			}

			//$this->redirect('/forums');

		}
	}

	function edit( $id=null) {
		if (!$id) $this->redirect('/forums');

		$title = 'Editar forum';
		$this->set('title', $title);
		$this->set('pageTitle', $title);

		$this->set('organizations', $this->Forum->Organization->find('list'));
		$this->Forum->id = $id;
		if (empty($this->data)) {
			$this->data = $this->Forum->read();
		} else {
			if ($this->Forum->save($this->data['Forum'])) {
				$_SESSION['mensagem']['success'][] = 'Fórum alterado com sucesso!';
			} else {
				$_SESSION['mensagem']['error'][] = 'Erro ao tentar alterar a Discussão.';
			}
			$this->redirect('/forums/view/'.$id);
		}
		$forun = $this->Forum->find(array('`Forum`.id' => $id));
		$this->set('forun', $forun);
	}

	function delete($id) {
		if (!$id) $this->redirect('/forums');
		if ($this->Forum->del($id)) {
			$_SESSION['mensagem']['success'][] = 'Array excluido com sucesso!';
		} else {
			$_SESSION['mensagem']['error'][] = 'Erro ao tentar excluir a Discussão.';
		}
		$this->redirect('/forums');
	}
}
?>